package com.hz.blogService.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hz.blogService.domain.Blog;

/**
* @author li
* @description 针对表【blogs(博客表)】的数据库操作Service
* @createDate 2023-09-23 17:15:33
*/
public interface UserService extends IService<Blog> {

    /**
     * @author LiiiYiAn
     * @createDate 2023/9/25 16:51
     * @description 发布博客
     * @param blog 博客信息
     * @return int 数据表受影响行数
     **/
    int addBlog(Blog blog);

    /**
     * @author LiiiYiAn
     * @createDate 2023/9/24 21:19
     * @description 查看博客列表，并将其存储到Redis缓存
     * @return java.lang.String 存储所有博客信息JSON格式
     **/
    String findBlogAll();

    /**
     * @author LiiiYiAn
     * @createDate 2023/9/24 21:20
     * @description 查看指定ID博客，并将其存储到Redis缓存
     * @param id 博客ID
     * @return java.lang.String 指定ID博客信息JSON格式
     **/
    String findBlogById(Integer id);

    /**
     * @author LiiiYiAn
     * @createDate 2023/9/24 21:20
     * @description 删除指定ID博客
     * @param id 博客ID
     * @return int 数据表受影响行数
     **/
    int deleteBlogById(Integer id);

    /**
     * @author LiiiYiAn
     * @createDate 2023/9/24 21:27
     * @description 修改博客
     * @param blog 博客信息，并更新其存储到Redis的缓存
     * @return int 数据表受影响行数
     **/
    int updateBlogById(Blog blog);

    /**
     * @author LiiiYiAn
     * @createDate 2023/9/24 21:29
     * @description 根据标题或内容搜索博客
     * @param keywords 标题或内容字符串
     * @return java.lang.String 指定博客信息JSON格式
     **/
    String findBlogByKeyWords(String keywords);

    /**
     * @author LiiiYiAn
     * @createDate 2023/10/8 21:31
     * @description 根据博客id查询对应作者信息（跨库查询（blog_service → user_service））
     * @param id 博客id
     * @return java.lang.String 对应作者信息JSON格式
     **/
    String findBlogAuthorById(Integer id);
}
